Адміністрація вирішила продати даний сайт. За детальною інформацією звертайтесь за адресою: rozrahu@gmail.com

Побудова та аналіз складності рекурсивних алгоритмів

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
КН
Кафедра:
Кафедра ЕОМ

Інформація про роботу

Рік:
2016
Тип роботи:
Лабораторна робота
Предмет:
Алгоритми та методи обчислень

Частина тексту файла

Міністерство освіти і науки України Національний університет “Львівська політехніка” Кафедра ЕОМ Звіт з лабораторної роботи № 4 з дисципліни: “Алгоритми та методи обчислень” на тему: “ Побудова та аналіз складності рекурсивних алгоритмів. ” Львів 2016 Мета роботи: навчитися працювати з рекурсивними функціями. Теоретичні відомості: Визначення рекурсії Рекурсивними називають функції, які в процесі виконання звертаються самі до себе. Рекурсія може бути безпосередньою (пряма рекурсія) – коли з тіла функції викликається та сама функція, або посередньою (непряма рекурсія) – коли функція викликає інші функції, які безпосередньо або через треті функції звертаються до даної функції. Здебільшого рекурсивні функції є лаконічними в записі і дають змогу наочно та стисло відобразити алгоритм розв’язання задачі. З іншого боку, рекурсивні звертання часто не легкі для сприйняття, аналізу та контролю. Вони можуть вимагати значних обсягів оперативної пам'яті і призводити до часових затримок в процесі виконання програми. За способом реалізації рекурсивні виклики рекурсивні виклики функцій нічим не відрізняються від звичайних викликів: кожен раз створюється новий набір формальних параметрів і внутрішніх змінних програми, код функції виконується від самого початку. Результат виконання функції повертається в точку її виклику. Виконання роботи: Варіант 15 Завдання: Обчислити значення функції:  Лістинг програми : #include <iostream> using namespace std; long double fact(int N) { if (N < 0) return 0; // при введенні відємного числа, виводиться 0 if (N == 0) return 1; // при введенні 0, виводиться 1 else return N * fact(N - 1); // інші випадки - рекурсія } int main() { int N, n; double k = 1; setlocale(LC_ALL, "Rus"); cout << "Введiть число для вирахування виразу з факторiалом: "; cin >> N; cout << endl; cout << "Введiть число для визначення кiлькостi iтерацiй: "; cin >> n; cout << endl; if (N < 0) { cout << "Помилка" << endl; } else if (N==0) { cout << "Помилка" << endl; } else { for (int i = 0; i < n; i++) { cout << "Факторiал для числа " << N << " = " << fact(N) << endl<< endl; // fact(N) - функція для вирахування факторіалу double b; b = (1 - (1 / fact(N))); b = b*b; k = k*b; N = N - 2; } } cout << "Вiдповiдь :" << k << endl << endl; system ("pause"); } Результат виконання програми: / Рис.1 Результат виконання програми Висновок: На даній лабораторній роботі я ознайомилася з рекурсивними функціями.
Антиботан аватар за замовчуванням

09.10.2017 23:10

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини